Communication within a prior art network 100, such as a storage area network (SAN), is illustrated in FIG. 1, which shows applications 101 (*), running on end-points 102(*), communicating with their peer applications 101 (*) via respective ports 103(*) and fabrics 105(*). As used herein, a ‘wild card’ indicator “(*)” following a reference number indicates an arbitrary one of a plurality of similar entities. The communication infrastructure in a storage area network often includes two or more independent Fibre Channel fabrics 105(1) and 105(k) comprising multiple switches and hubs (not shown). Each end-point 102(*) is connected to one or more Fibre Channel fabrics 105(*) via one or more ports 103(*), and may use any of these fabrics to communicate with other end-points 102(*).
A port 103(*) is a module such as a Fibre Channel adapter module, a portion of such a module, or a collection of circuits embedded within an end-point. Each port 103(*) is attached to at most one Fibre Channel fabric 105(*). A port 103(*) may be dedicated for use by a single end-point, as is port 103(p), or it may be shared by multiple end-points, as is port 103(1).
Many existing networking systems select source and destination ports at connection establishment based on the lowest end-to-end hop count, and continue to use those ports for the duration of a connection. Internet Protocol (IP) performs routing within the network between the source and destination ports, but not among the ports local to the end-points. The effect of fixing a connection's source and destination ports is that no available routes that employ other source or destination ports will be used unless the connection fails. Because Fibre Channel does not provide for routing, the entire IP route is selected at connection establishment. Furthermore, in a network such as Fibre Channel, where multiple routes have equal hop count, selecting the ‘shortest’ route is a meaningless concept. In systems that select routes during connection establishment, fail-over is not rapid and usually results in application error recovery. Furthermore, in these systems, load balancing is not performed and route selection does not adapt to changing route performance.